<template>
  <h1>正在登录中...</h1>
</template>

<script>
export default {
  created() {
    // this.unWatch = this.$watch
    this.unWatch = this.$store.watch( // vuex也有watch方法，用法几乎和vue相同
      () => this.$store.getters["loginUser/status"],
      (status) => {
        if (status !== "loading") {
          this.$router
            .push(this.$route.query.returnurl || "/home")
            // 反复来回跳转重定向（主要是重定向会导致报错）会报一个错，但是不影响使用，这里捕获一下
            // redirected when going from '' to '/home' via a navigation guard.
            .catch(() => {});
            // 还有一种方案是判断有没有恢复登录，有用户的话直接跳目标页，否则跳登录页，减少跳转时判断又重定向
        }
      },
      {
        immediate: true,
      }
    );
  },
  destroyed() {
    this.unWatch(); // 取消监控，配置式的不用取消
  },
};
</script>

<style></style>
